package vip.xiaonuo.smzq.modular.jsxm.service.impl;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import vip.xiaonuo.smzq.modular.dictionary.entity.Cb02Kslx;
import vip.xiaonuo.smzq.modular.dictionary.entity.Cb03Kspj;
import vip.xiaonuo.smzq.modular.dictionary.entity.Cb06Kc;
import vip.xiaonuo.smzq.modular.dictionary.mapper.Cb02KslxMapper;
import vip.xiaonuo.smzq.modular.dictionary.mapper.Cb03KspjMapper;
import vip.xiaonuo.smzq.modular.dictionary.mapper.Cb06KcMapper;
import vip.xiaonuo.smzq.modular.jsxm.entity.JsxmYfkcYfzycl;
import vip.xiaonuo.smzq.modular.jsxm.mapper.JsxmYfkcYfzyclMapper;
import vip.xiaonuo.smzq.modular.jsxm.service.IJsxmYfkcYfzyclService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import vip.xiaonuo.common.page.CommonPageRequest;
import vip.xiaonuo.smzq.modular.psba.entity.PsbaGtKjzycl;
import vip.xiaonuo.smzq.modular.psba.entity.vo.Cdfwnzycl;
import vip.xiaonuo.smzq.modular.psba.mapper.PsbaGtZlMapper;

import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;

/**
 * 建设项目—矿产资源组合 服务实现类
 *
 * @author sqq
 * @since 2024-05-24
 */
@Service
public class JsxmYfkcYfzyclServiceImpl extends ServiceImpl<JsxmYfkcYfzyclMapper, JsxmYfkcYfzycl> implements IJsxmYfkcYfzyclService {

    @Resource
    private JsxmYfkcYfzyclMapper jsxmYfkcYfzyclMapper;
    @Resource
    private Cb06KcMapper cb06KcMapper; //矿产
    @Resource
    private Cb03KspjMapper cb03KspjMapper;//矿石品级
    @Resource
    private Cb02KslxMapper cb02KslxMapper;//矿石类型
    @Resource
    private PsbaGtZlMapper psbaGtZlMapper;//矿石质量

    @Override
    public Page<JsxmYfkcYfzycl> page(JsxmYfkcYfzycl jsxmYfkcYfzycl) {
        QueryWrapper<JsxmYfkcYfzycl> queryWrapper = new QueryWrapper<>();
        return this.page(CommonPageRequest.defaultPage(), queryWrapper);
    }

    @Override
    public List<Cdfwnzycl> getCdfwnzyclList(String jsxmbh) {
        List<Cdfwnzycl> cdfwnzyclList=new ArrayList<>();
//        try{
            List<String> kslxpjList=jsxmYfkcYfzyclMapper.getKslxpjList(jsxmbh);
            if (kslxpjList!=null&&kslxpjList.size()>0) {
                for (String kslxpj : kslxpjList) {
                    // 使用逗号作为分隔符进行分割
                    String[] parts = kslxpj.split(",");
                    // 获取两个部分
                    Integer kslx = Integer.valueOf(parts[0]);  // 逗号前的部分
                    Integer kspj = Integer.valueOf(parts[1]);  // 逗号后（如果有的话）的部分
                    List<String> zycllzList =jsxmYfkcYfzyclMapper.getZycllzList(jsxmbh, kslx, kspj);
                    if (zycllzList != null && zycllzList.size() > 0) {
                        for (String zycllz : zycllzList) {
                            QueryWrapper<JsxmYfkcYfzycl> queryWrapper = new QueryWrapper<>();
                            queryWrapper.eq("jsxmbh", jsxmbh);
                            queryWrapper.eq("kslx", kslx);
                            queryWrapper.eq("kspj", kspj);
                            queryWrapper.eq("zycllx", zycllz);
                            List<JsxmYfkcYfzycl> jsxmYfkcYfzycllList = jsxmYfkcYfzyclMapper.selectList(queryWrapper);

                            if (jsxmYfkcYfzycllList != null && jsxmYfkcYfzycllList.size() > 0) {
                                JsxmYfkcYfzycl jsxmYfkcYfzycl = jsxmYfkcYfzycllList.get(0);
                                Cdfwnzycl cdfwnzycl = new Cdfwnzycl();
                                cdfwnzycl.setKqbh(jsxmYfkcYfzycl.getKqbh());
                                cdfwnzycl.setSsksbh(jsxmYfkcYfzycl.getSsksbh());
                                cdfwnzycl.setKczycllx(jsxmYfkcYfzycl.getZycllx());

                                //矿石工业类型及品牌
                                String kslxpjmc = "";
                                QueryWrapper<Cb02Kslx> queryWrapperKslx = new QueryWrapper<>();
                                queryWrapperKslx.eq("kcdm", jsxmYfkcYfzycl.getKcdm());
                                queryWrapperKslx.eq("kslx", jsxmYfkcYfzycl.getKslx());
                                Cb02Kslx cb02Kslx = cb02KslxMapper.selectOne(queryWrapperKslx);
                                if (cb02Kslx != null) {
                                    kslxpjmc = cb02Kslx.getKslxmc() + " ";
                                }

                                QueryWrapper<Cb03Kspj> queryWrapperKspj = new QueryWrapper<>();
                                queryWrapperKspj.eq("kcdm", jsxmYfkcYfzycl.getKcdm());
                                queryWrapperKspj.eq("kspj", jsxmYfkcYfzycl.getKspj());
                                Cb03Kspj cb03Kspj = cb03KspjMapper.selectOne(queryWrapperKspj);
                                if (cb03Kspj != null) {
                                    kslxpjmc += cb03Kspj.getKspjmc();
                                }
                                cdfwnzycl.setKslxpj(kslxpjmc);

                                //矿产名称
                                String kcmc = "";
                                //统计对象
                                String tjdx = "";
                                QueryWrapper<Cb06Kc> queryWrapperKc = new QueryWrapper<>();
                                queryWrapperKc.eq("kcdm", jsxmYfkcYfzycl.getKcdm());
                                List<Cb06Kc> cb06KcList = cb06KcMapper.selectList(queryWrapperKc);
                                if (cb06KcList != null && cb06KcList.size() != 0) {
                                    Cb06Kc cb06Kc = cb06KcList.get(0);
                                    kcmc = cb06Kc.getKcmc() + "(" + jsxmYfkcYfzycl.getKczh() + ")";
                                    tjdx = cb06Kc.getKcmc();
                                    if (cb06Kc.getJsldw() != null && !cb06Kc.getJsldw().equals("")) {
                                        tjdx = tjdx + " " + cb06Kc.getJsldw();
                                    } else {
                                        tjdx = tjdx + " " + cb06Kc.getKsldw();
                                    }
                                    cdfwnzycl.setKcmc(kcmc);
                                    cdfwnzycl.setTjdxdw(tjdx);
                                    for (JsxmYfkcYfzycl JsxmYfkcYfzycl1 : jsxmYfkcYfzycllList) {
                                        if (JsxmYfkcYfzycl1.getZycllb() == 19001) {
                                            cdfwnzycl.setJslbul(JsxmYfkcYfzycl1.getJsl());
                                            cdfwnzycl.setKslbul(JsxmYfkcYfzycl1.getKsl());

                                        }
                                        if (JsxmYfkcYfzycl1.getZycllb() == 19002) {
                                            cdfwnzycl.setKslcml(JsxmYfkcYfzycl1.getKsl());
                                            cdfwnzycl.setJslcml(JsxmYfkcYfzycl1.getJsl());

                                        }
                                    }
                                    cdfwnzyclList.add(cdfwnzycl);
                                }
                            }
                        }
                    }
                }
            }
//        }catch (Exception e){
//            e.printStackTrace();
//        }
        return cdfwnzyclList;
    }
}
